#ifndef CIGUI_VIEWHEADER_H
#define CIGUI_VIEWHEADER_H

#include <QtGui>

#include "Gui_GLOBAL.h"
#include "../View/View.h"

namespace CIGui {
    /**
     * This class represents the toolbar shown as header of a 3D view    
     **/
    class ViewHeader : public QToolBar {

        Q_OBJECT    
            
    public:
        ViewHeader (QWidget* parent, CIView::View* v);      //Constructor
        virtual ~ViewHeader();                              //Destructor

        //CONSTANTS DECLARATION        
        static const QString STYLE_SHEET;

    public slots:
        void ToggleFullScreenMode();                    //Slot method to toggle the screen mode
        void ResetCamera();                             //Slot method to reset the camera parameters  
        void LightOnOff (bool l);                       //Slot method called whenever lighting is enableb/disableb

    protected:
    //Widgets
        CIView::View* view;                     //A pointer to the view associated
        QComboBox* cameraSelector;              //A combo box to select the needed visual                
        QComboBox* polygonModeSelector;         //A combo box to select the polygon mode (Wireframe, Fill,...)

    //Actions
        //Icons Actions
        QAction* resetCameraAct;                //Action to reset the camera parameters
        QAction* lightOnOffAct;                 //Action to enable/disable lighting
        QAction* infoFilterAct;                 //Action to select the information to be showed
        QAction* fullScreenAct;                 //Action to select the full screen mode

    //Methods    
        //Utility methods
        void CreateActions();                   //Method called to create the actions
        void CreateWidgets();                   //Method called to create the combo-box widgets        
        void CreateCameraSelector();            //Method called to create the camera-selector combo box            
        void CreatePolygonModeSelector();       //Method called to create the polygon-mode-selector combo box         
    };
}

#endif /* CIGUI_VIEWHEADER_H */
